#由于key=后面的排序规则可以接一个函数，且会根据返回的元组的第一个bool类型转化为int型后进行比较。
# 所以就是说在越排在后面的它对应的元组第一个就要为
#Ture，也就是说在匿名函数里面表达式的先后顺序就是最后面-较后面-较前面-最前面
int_str=[7, -8, 5, 4, 0, -2, -5]
print(sorted(int_str,key= lambda x:(int (x) <0 and abs(x),x)))
#int (x) <0为满足负数的表达式，abs(x)满足负数从大到小的条件 后面的x作用是在前面的规则排完序后，按照ascii码对相应片段进行排序


#''.join()作用为列表转化为str类型
s='asdf234GDSdsf23'
print(''.join(sorted(s,key = lambda x:(x.isdigit() and int(x)%2==0,x.isdigit(),x.isupper(),x.islower(),x))))